Conventional single instancing solutions are typically file-based or block-based.
File-based means that, for example if an Excel spread sheet file on a disk is copied to another location on the disk, on a single instanced data store, it would be detected that they contain the same contents and only one reference to the file would be kept regardless of how many times it appears on the disk (or other disks) and under which filesystems.
However, if this Excel spreadsheet is opened and only one number is changed then it is saved, even though 99% of the document is still the same, file-level single instancing would not work.
Block-level single instancing would help here. Block-level single instancing chops up files into blocks and even if one block (in the example where the number got changed) doesn't match, the other blocks still do, so they can be single instanced.
However, if new rows are inserted, or using a different example, a file e.g., a Word document, that is split into blocks of certain fixed block sizes, if somewhere at the start a single letter, a word, or a sentence is inserted, everything below it will shift and all the blocks will become different even though only a small change in the file occurred.
The need exists for a system that overcomes the above problems, as well as one that provides additional benefits. Overall, the examples herein of some prior or related systems and their associated limitations are intended to be illustrative and not exclusive. Other limitations of existing or prior systems will become apparent to those of skill in the art upon reading the following Detailed Description.